package com.imooc.service;

import com.imooc.netty.ChatMsg;
import com.imooc.pojo.Users;
import com.imooc.pojo.vo.FriendRequestVO;
import com.imooc.pojo.vo.MyFriendsVO;

import java.util.List;

public interface UserService
{
    /*判断用户名是否存在*/
    boolean queryUsernameExist(String username);

    /*用户登录*/
    Users queryUser4Login(String username, String password);

    /*用户注册*/
    Users saveUser(Users user);

    /*修改用户信息*/
    Users updateUserInfo(Users user);

    /*搜索朋友的前置条件*/
    Integer preconditionSearchFriends(String myUserId, String friendUsername);

    /*根据用户名查询用户对象*/
    Users queryUserInfoByUsername(String friendUsername);

    /*添加好友请求记录，保存到数据库*/
    void sendFriendRequest(String myUserId, String friendUsername);

    /*查询好友请求*/
    List<FriendRequestVO> queryFriendRequestList(String acceptUserId);

    /*删除好友请求记录*/
    void deleteFriendRequest(String sendUserId, String acceptUserId);

    /**
     * @Description: 通过好友请求
     * 1. 保存好友
     * 2. 逆向保存好友
     * 3. 删除好友请求记录
     */
    void passFriendRequest(String sendUserId, String acceptUserId);

    /*查询好友列表*/
    List<MyFriendsVO> queryMyFriends(String userId);

    /*保存聊天消息到数据库*/
    String saveMsg(ChatMsg chatMsg);

    /*批量签收消息*/
    void updateMsgSigned(List<String> msgIdList);

    /*获取未签收消息列表*/
    List<com.imooc.pojo.ChatMsg> getUnReadMsgList(String acceptUserId);
}
